package bit_pratice.day10;

import java.util.*;

/**
 * 根据密码强度等级记分，根据分数输出对应单词
 * 记分规则：长度数字字母符号
 **/
public class PasswordStrengthLevel {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        while (sc.hasNextLine()){
            String str=sc.nextLine();
            int sum=getResult(str);
            if(sum>=90){
                System.out.println("VERY_SECURE");
            }else if(sum>=80){
                System.out.println("SECURE");
            }else if(sum>=70){
                System.out.println("VERY_STRONG");

            }else if(sum>=60){
                System.out.println("STRONG");
            }else if(sum>=50){
                System.out.println("AVERAGE");
            }else if(sum>=25){
                System.out.println("WEAK");
            }else{
                System.out.println("VERY_WEAK");
            }

        }
    }

    private static int getResult(String str) {
        //计算总分根据对应总分得到结果
        //奖励：2 分: 字母和数字   3 分: 字母、数字和符号
//5 分: 大小写字母、数字和符号
        int sum=0;//统计总分
        int sumLen=getLength(str);
        int sumLetter=getLetter(str);
        int sumNum=getNum(str);
        int sumChar=getChar(str);
        //总分等于他们加奖励
        if((sumChar>0)&&(sumLetter==20)&&(sumNum)>0){
            sum=sumLen+sumLetter+sumChar+sumNum+5;
        }else if(sumLetter==10&&sumNum>0&&sumChar>0){
            sum=sumLen+sumLetter+sumChar+sumNum+3;
        }else if(sumLetter>0&&sumNum>0){
            sum=sumLen+sumLetter+sumChar+sumNum+2;
        }else{
            sum=sumLen+sumLetter+sumChar+sumNum;
        }
        return sum;
    }
    //根据密码长度返回分数
    private static int getLength(String str){
        if(str.length()<=4){
            return 5;
        }else if(str.length()<=7){
            return 10;
        }else {
            return 25;
        }
    }
    //根据大小写字母返回分数
    private static int getLetter(String str){
        //没有字母0，只有大/小10，大小写混合20
        //大写字母ascii:65-90
        //小写字母ascii:97-122
        int big=0;int small=0;
        for(int i=0;i<str.length();i++){
            char ch=str.charAt(i);
            if(ch>=65&&ch<=90){
                big++;
            }else if(ch>=97&&ch<=122){
                small++;
            }
        }
        if(big>0&&small>0){
            return 20;
        }else if(big==0||small==0){
            return 10;
        }else{
            return 0;
        }
    }
    //根据数字返回分数
    private static int getNum(String str){
        int num=0;
        for(int i=0;i<str.length();i++){
            char ch=str.charAt(i);
            if(ch>='0'&&ch<='9'){
                num++;
            }
        }
        if(num==0){
            return 0;
        }else if(num==1){
            return 10;
        }else{
            return 20;
        }
    }
    //根据特殊字符判断——除了数字大小写字母以外的 没有符号一个符号大于一个符号
    private static int getChar(String str){
        int sum=0;
        for(int i=0;i<str.length();i++){
            char ch=str.charAt(i);
            if(!(ch>='0'&&ch<='9')&&!(ch>=97&&ch<=122)&&!(ch>=65&&ch<=90)){
                sum++;
            }
        }
        if(sum==0){
            return 0;
        }else if(sum==1){
            return 10;
        }else{
            return 25;
        }
    }
}
